package cn.com.yiqi.wsc.dao.subject;

import cn.com.artemis.framework.base.commons.persistence.CrudDao;
import cn.com.yiqi.wsc.dao.subject.criteria.SubjectCriteria;
import cn.com.yiqi.wsc.entity.subject.AdminSubjectDTO;
import cn.com.yiqi.wsc.entity.subject.Subject;
import cn.com.yiqi.wsc.entity.subject.SubjectItemDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 何刚
 * @ClassName: ${class}
 * @Description: TODO
 * @date 2017/3/13
 */
@Repository
public interface SubjectDao extends CrudDao<Subject> {

    /**
     * 分页查询
     *
     * @param criteria
     * @return
     */
    List<AdminSubjectDTO> pageList(SubjectCriteria criteria);


    /**
     * 获取商品列表
     *
     * @param criteria
     * @return
     */
    List<SubjectItemDTO> getItemBySubjectId(SubjectCriteria criteria);


    /**
     * 预览
     *
     * @param criteria
     * @return
     */
    AdminSubjectDTO preview(SubjectCriteria criteria);


    /**
     * 根据组件修改sort
     *
     * @param idBig
     * @param idSmall
     * @return
     */
    List<AdminSubjectDTO> changeSort(@Param("idBig") Integer idBig, @Param("idSmall") Integer idSmall);

    /**
     * 根据排序获取Id
     *
     * @param sort
     * @return
     */
    Integer getIdBySort(@Param("sort") Integer sort);


    /**
     * 根据Id获取排序
     *
     * @param id
     * @return
     */
    Integer getSortById(@Param("id") Integer id);

}
